home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / mac / misc / demo / hyperxbu.sit / HyperXBug Demo / HyperXBug libs / HyperXCmdHC.h < prev   
Encoding:
C/C++ Source or Header  |  1991-07-16  |  10.9 KB  |  293 lines

  1. /************************************************************
  2.  *
  3.  *    HyperXCmdHC.h
  4.  *    Definition file for HyperCard XCMDs and XFCNs in C.
  5.  *
  6.  *  Copyright (c) 1991 Symantec Corporation.  All rights reserved.
  7.  *
  8.  *  These interfaces are based on material copyrighted
  9.  *  by Apple Computer, Inc., 1987-1990.
  10.  *
  11.  
  12. ************************************************************/
  13.  
  14. #ifndef  __HYPERXCMDHC__
  15. #define __HYPERXCMDHC__  1
  16.  
  17. #ifndef  _MacTypes_
  18. #include <MacTypes.h>
  19. #endif
  20.  
  21. #ifndef _EventMgr_
  22. #include <EventMgr.h>
  23. #endif
  24.  
  25. #ifndef _MenuMgr_
  26. #include <MenuMgr.h>
  27. #endif
  28.  
  29. #ifndef _TextEdit_
  30. #include <TextEdit.h>
  31. #endif
  32.  
  33. #ifndef _StdFilePkg_
  34. #include <StdFilePkg.h>
  35. #endif
  36.  
  37. #ifndef _WindowMgr_
  38. #include <WindowMgr.h>
  39. #endif
  40.  
  41. enum requestCode{
  42.     xreqSendCardMessage = 1,
  43.     xreqEvalExpr,
  44.     xreqStringLength,
  45.     xreqStringMatch,
  46.     xreqSendHCMessage,
  47.     xreqZeroBytes,
  48.     xreqPasToZero,
  49.     xreqZeroToPas,
  50.     xreqStrToLong,
  51.     xreqStrToNum,
  52.     xreqStrToBool,
  53.     xreqStrToExt,
  54.     xreqLongToStr,
  55.     xreqNumToStr,
  56.     xreqNumToHex,
  57.     xreqBoolToStr,
  58.     xreqExtToStr,
  59.     xreqGetGlobal,
  60.     xreqSetGlobal,
  61.     xreqGetFieldByName,
  62.     xreqGetFieldByNum,
  63.     xreqGetFieldByID,
  64.     xreqSetFieldByName,
  65.     xreqSetFieldByNum,
  66.     xreqSetFieldByID,
  67.     xreqStringEqual,
  68.     xreqReturnToPas,
  69.     xreqScanToReturn,
  70.     xreqScanToZero = 39,
  71.     xreqSendError
  72. };
  73.  
  74. /* result codes */
  75. enum {
  76. xresSucc = 0,
  77. xresFail,
  78. xresNotImp,
  79.  
  80.  
  81. /* XCMDBlock constants for event.what... */
  82.  
  83. xOpenEvt = 1000,            /* the first event after you are created */
  84. xCloseEvt,                    /* your window is being forced close (Quit?) */
  85. xGiveUpEditEvt,                /* you are losing Edit... */
  86. xGiveUpSoundEvt,            /* you are losing the sound channel... */
  87. xHidePalettesEvt,            /* someone called HideHCPalettes */
  88. xShowPalettesEvt,            /* someone called ShowHCPalettes */
  89. xEditUndo = 1100,            /* Edit╤╤Undo */
  90. xEditCut = 1102,            /* Edit╤╤Cut */
  91. xEditCopy,                    /* Edit╤╤Copy */
  92. xEditPaste,                    /* Edit╤╤Paste */
  93. xEditClear,                    /* Edit╤╤Clear */
  94. xSendEvt = 1200,            /* script has sent you a message (text) */
  95. xSetPropEvt,                /* set a window property */
  96. xGetPropEvt,                /* get a window property */
  97. xCursorWithin = 1300,        /* cursor is within the window */
  98. xMenuEvt = 1400,            /* user has selected an item in your menu */
  99. xMBarClickedEvt,            /* a menu is about to be shown--update if needed */
  100.  
  101.  
  102. xShowWatchInfoEvt = 1501,    /* for variable and message watchers */
  103. xScriptErrorEvt,            /* place the insertion point */
  104. xDebugErrorEvt,                /* user clicked "Debug" at a complaint */
  105. xDebugStepEvt,                /* hilite the line */
  106. xDebugTraceEvt,                /* same as step but tracing */
  107. xDebugFinishedEvt,            /* script ended */
  108.  
  109.  
  110. paletteProc = 2048,            /* Windoid with grow box */
  111. palNoGrowProc = 2052,        /* standard Windoid defproc */
  112. palZoomProc = 2056,            /* Windoid with zoom and grow */
  113. palZoomNoGrow = 2060,        /* Windoid with zoom and no grow */
  114. hasZoom = 8,
  115. hasTallTBar = 2,
  116. toggleHilite = 1
  117. };
  118.  
  119. #define maxCachedChecks            16        /* maximum number of checkpoints in a script */
  120.  
  121.  
  122. /* paramCount is set to these constants when first calling special XThings */
  123. #define xMessageWatcherID        = -2;
  124. #define xVariableWatcherID        = -3;
  125. #define xScriptEditorID            = -4;
  126. #define xDebuggerID                = -5;
  127.  
  128. /* XTalkObjectPtr->objectKind values */
  129. enum {
  130. stackObj = 1,
  131. bkgndObj,
  132. cardObj,
  133. fieldObj,
  134. buttonObj
  135. };
  136.  
  137. typedef unsigned char Str31[32];
  138.  
  139. /*typedef struct XCmdBlock *XCmdPtr; */
  140. typedef struct XCmdBlock {
  141.     short paramCount;         /* If = -1 then new use for XWindoids */
  142.     Handle params[16];
  143.     Handle returnValue;
  144.     Boolean passFlag;
  145.  
  146.  /*    Ptr entryPoint;             to call back to HyperCard */
  147.     void    (*entryPoint)();    /* to call back to HyperCard */
  148.  
  149.     short request;
  150.     short result;
  151.     long inArgs[8];
  152.     long outArgs[4];
  153. } XCmdBlock, *XCmdPtr;
  154.  
  155. typedef struct XWEventInfo *XWEventInfoPtr; 
  156. struct XWEventInfo {
  157.     EventRecord event;
  158.     WindowPtr eventWindow;
  159.     long eventParams[9];
  160.     Handle eventResult;
  161. };
  162.  
  163. typedef struct XTalkObject *XTalkObjectPtr;
  164. struct XTalkObject {
  165.     short objectKind;        /* stack, bkgnd, card, field, or button */
  166.     long stackNum;            /* reference number of the source stack */
  167.     long bkgndID;
  168.     long cardID;
  169.     long buttonID;
  170.     long fieldID;
  171. };
  172.  
  173.  
  174. typedef struct CheckPts *CheckPtPtr;
  175. typedef CheckPtPtr *CheckPtHandle; 
  176. struct CheckPts {
  177.     short checks[maxCachedChecks];
  178. };
  179.  
  180.  
  181. /****  HyperTalk Utilities  ****/
  182. extern pascal Handle EvalExpr(XCmdPtr paramPtr, StringPtr expr);
  183. extern pascal void SendCardMessage(XCmdPtr paramPtr, StringPtr msg);
  184. extern pascal void SendHCMessage(XCmdPtr paramPtr, StringPtr msg);
  185. extern pascal void RunHandler(XCmdPtr paramPtr, Handle handler);
  186.  
  187. /****  Memory Utilities  ****/
  188. extern pascal Handle GetGlobal(XCmdPtr paramPtr, StringPtr globName);
  189. extern pascal void SetGlobal(XCmdPtr paramPtr, StringPtr globName, Handle globValue);
  190. extern pascal void ZeroBytes(XCmdPtr paramPtr, Ptr dstPtr, long longCount);
  191.  
  192. /****  String Utilities  ****/
  193. extern pascal void ScanToReturn(XCmdPtr paramPtr, Ptr *scanPtr);
  194. extern pascal void ScanToZero(XCmdPtr paramPtr, Ptr *scanPtr);
  195. extern pascal Boolean StringEqual(XCmdPtr paramPtr, StringPtr str1, StringPtr str2);
  196. extern pascal long StringLength(XCmdPtr paramPtr, Ptr strPtr);
  197. extern pascal Ptr StringMatch(XCmdPtr paramPtr, StringPtr pattern, Ptr target);
  198. extern pascal void ZeroTermHandle(XCmdPtr paramPtr, Handle hndl);                                
  199.  
  200. /****  String Conversions  ****/
  201. extern pascal void BoolToStr(XCmdPtr paramPtr, Boolean bool, StringPtr str);
  202. extern pascal void ExtToStr(XCmdPtr paramPtr, double *num, StringPtr str);
  203. extern pascal void LongToStr(XCmdPtr paramPtr, long posNum, StringPtr str);
  204. extern pascal void NumToHex(XCmdPtr paramPtr, long num, short nDigits, StringPtr str);
  205. extern pascal void NumToStr(XCmdPtr paramPtr, long num, StringPtr str);
  206. extern pascal Handle PasToZero(XCmdPtr paramPtr, StringPtr str);
  207. extern pascal void PointToStr(XCmdPtr paramPtr, Point pt, StringPtr str);                        
  208. extern pascal void RectToStr(XCmdPtr paramPtr, Rect *rct, StringPtr str);                        
  209. extern pascal void ReturnToPas(XCmdPtr paramPtr, Ptr zeroStr, StringPtr pasStr);
  210. extern pascal Boolean StrToBool(XCmdPtr paramPtr, StringPtr str);
  211. extern pascal void StrToExt(XCmdPtr paramPtr, double *num, StringPtr str);
  212. extern pascal long StrToLong(XCmdPtr paramPtr, StringPtr str);
  213. extern pascal long StrToNum(XCmdPtr paramPtr, StringPtr str);
  214. extern pascal void StrToPoint(XCmdPtr paramPtr, StringPtr str, Point *pt);                        
  215. extern pascal void StrToRect(XCmdPtr paramPtr, StringPtr str, Rect *rct);                        
  216. extern pascal void ZeroToPas(XCmdPtr paramPtr, Ptr zeroStr, StringPtr pasStr);
  217.  
  218. /****  Field Utilities  ****/
  219. extern pascal Handle GetFieldByID(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldID);
  220. extern pascal Handle GetFieldByName(XCmdPtr paramPtr, Boolean cardFieldFlag, StringPtr fieldName);
  221. extern pascal Handle GetFieldByNum(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldNum);
  222. extern pascal void SetFieldByID(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldID,
  223.     Handle fieldVal);
  224. extern pascal void SetFieldByName(XCmdPtr paramPtr, Boolean cardFieldFlag,
  225.     StringPtr fieldName, Handle fieldVal);
  226. extern pascal void SetFieldByNum(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldNum,
  227.     Handle fieldVal);
  228. extern pascal TEHandle GetFieldTE(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldID,
  229.     short fieldNum, StringPtr fieldNamePtr);                                                    
  230. extern pascal void SetFieldTE(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldID,
  231.     short fieldNum, StringPtr fieldNamePtr, TEHandle fieldTE);                                    
  232.  
  233. /****  Miscellaneous Utilities  ****/  /* ALL NEW */
  234. extern pascal void BeginXSound(XCmdPtr paramPtr);
  235. extern pascal void EndXSound(XCmdPtr paramPtr);
  236. extern pascal Boolean GetFilePath(XCmdPtr paramPtr, StringPtr fileName, short numTypes, SFTypeList typeList,
  237.     Boolean askUser, OSType *fileType, StringPtr fullName);
  238. extern pascal void GetXResInfo(XCmdPtr paramPtr, short *resFile, short *resID);
  239. extern pascal void Notify(XCmdPtr paramPtr);
  240. extern pascal void SendHCEvent(XCmdPtr paramPtr, EventRecord *event);
  241. extern pascal void SendWindowMessage(XCmdPtr paramPtr, WindowPtr windPtr, 
  242.     StringPtr windowName, Handle msg);
  243. extern pascal WindowPtr FrontDocWindow(XCmdPtr paramPtr);
  244. extern pascal long StackNameToNum(XCmdPtr paramPtr, StringPtr stackName);
  245. extern pascal short ShowHCAlert(XCmdPtr paramPtr, short dlgID, StringPtr promptStr);
  246.  
  247. /****  Creating and Disposing XWindoids  ****/  /* ALL NEW */
  248. extern pascal WindowPtr NewXWindow(XCmdPtr paramPtr, Rect *boundsRect, StringPtr title, 
  249.    Boolean visible, short procID, Boolean color, Boolean floating);
  250. extern pascal WindowPtr GetNewXWindow(XCmdPtr paramPtr, ResType templateType, short 
  251.    templateID, Boolean color, Boolean floating);
  252. extern pascal void CloseXWindow(XCmdPtr paramPtr, WindowPtr window);
  253.  
  254. /****  XWindoid Utilities  ****/  /* ALL NEW */
  255. extern pascal void HideHCPalettes(XCmdPtr paramPtr);
  256. extern pascal void ShowHCPalettes(XCmdPtr paramPtr);
  257. extern pascal void RegisterXWMenu(XCmdPtr paramPtr, WindowPtr window, MenuHandle menu, Boolean registering);
  258. extern pascal void SetXWIdleTime(XCmdPtr paramPtr, WindowPtr window, long interval);
  259. extern pascal void XWHasInterruptCode(XCmdPtr paramPtr, WindowPtr window, Boolean haveCode);
  260. extern pascal void XWAlwaysMoveHigh(XCmdPtr paramPtr, WindowPtr window, Boolean moveHigh);
  261. extern pascal void XWAllowReEntrancy(XCmdPtr paramPtr, WindowPtr window, Boolean allowSysEvts, Boolean allowHCEvts);
  262.  
  263. /****  Text Editing Utilities  ****/  /* ALL NEW */
  264. extern pascal void BeginXWEdit(XCmdPtr paramPtr, WindowPtr window);
  265. extern pascal void EndXWEdit(XCmdPtr paramPtr, WindowPtr window);
  266. extern pascal Ptr HCWordBreakProc(XCmdPtr paramPtr);
  267. extern pascal void PrintTEHandle(XCmdPtr paramPtr, TEHandle hTE, StringPtr header);
  268.  
  269. /****  Script Editor support  ****/  /* ALL NEW */
  270. extern pascal CheckPtHandle GetCheckPoints(XCmdPtr paramPtr);
  271. extern pascal void SetCheckPoints(XCmdPtr paramPtr, CheckPtHandle checkLines);
  272. extern pascal void FormatScript(XCmdPtr paramPtr, Handle scriptHndl, long *insertionPoint, Boolean quickFormat);
  273. extern pascal void SaveXWScript(XCmdPtr paramPtr, Handle scriptHndl);
  274. extern pascal void GetObjectName(XCmdPtr paramPtr, XTalkObjectPtr object, StringPtr objName);
  275. extern pascal void GetObjectScript(XCmdPtr paramPtr, XTalkObjectPtr object, Handle *scriptHndl);
  276. extern pascal void SetObjectScript(XCmdPtr paramPtr, XTalkObjectPtr object, Handle scriptHndl);
  277.  
  278. /****  Debugging Tools support  ****/  /* ALL NEW */
  279. extern pascal void AbortScript(XCmdPtr paramPtr);
  280. extern pascal void GoScript(XCmdPtr paramPtr);
  281. extern pascal void StepScript(XCmdPtr paramPtr, Boolean stepInto);
  282. extern pascal void CountHandlers(XCmdPtr paramPtr, short *handlerCount);
  283. extern pascal void GetHandlerInfo(XCmdPtr paramPtr, short handlerNum, StringPtr handlerName, 
  284.                                   StringPtr objectName, short *varCount);
  285. extern pascal void GetVarInfo(XCmdPtr paramPtr, short handlerNum, short varNum, StringPtr varName, 
  286.                               Boolean *isGlobal, StringPtr varValue, Handle varHndl);
  287. extern pascal void SetVarValue(XCmdPtr paramPtr, short handlerNum, short varNum, Handle varHndl);
  288. extern pascal Handle GetStackCrawl(XCmdPtr paramPtr);
  289. extern pascal void TraceScript(XCmdPtr paramPtr, Boolean traceInto);
  290.  
  291.  
  292. #endif       /* UsingHyperXCmd */
  293.